package ar.republicagroup.gestion.services;

import ar.republicagroup.gestion.entities.Cheque;
import ar.republicagroup.gestion.entities.ChequeEstado;
import java.util.List;
import java.util.Vector;
import javax.swing.DefaultComboBoxModel;

public interface ChequeEstadoServices {
    
    
        public static final int ESTADO_INGRESADO = 1;
        public static final int ESTADO_APROBADO  = 2;
        
        /* ESTADOS DE LOS CHEQUES EN BD */
        public static final int CHEQUE_INGRESADO    = 1;
        public static final int CHEQUE_APROBADO     = 2;
        public static final int CHEQUE_RECHAZADO_1  = 3;
        public static final int CHEQUE_RECHAZADO_2  = 4;
        public static final int CHEQUE_RECHAZADO_3  = 5;
        public static final int CHEQUE_REDEPOSITADO = 6;
        public static final int CHEQUE_LIQUIDADO    = 7;
        public static final int CHEQUE_PENDIENTE    = 8;
        
        /* COMBOS DE ESTADOS SEGÚN FORMULARIO */
        public static final int ESTADOS_DE_BUSQUEDA_CHEQUE= 1;
        public static final int ESTADOS_PARA_LIQUIDACION= 2;
        public static final int ESTADOS_CUSTOMIZABLES= 3;
        public static final int ESTADOS_PARA_EDITAR_LIQUID = 4;
        
        
        public List<ChequeEstado> findEntities();
	
	public List<ChequeEstado> getChequesByFilters(String filter1);

        public String insert(ChequeEstado beanChequeEstado);

        public String update(ChequeEstado beanCheque);

        public ChequeEstado get(Integer id_cheque_estado); 

        public String delete(Integer id_cheque_estado);
    
        public DefaultComboBoxModel combo(int tipoDeEstados); 
        
         /* Bussiness Logic */
        
        public List<Cheque> rollbackChequeEstadoToAprobado(List<Cheque> chequeList);
        
        
        /**
         * Cambia los estados de los cheques de acuerdo a lo seleccionado en el JTable de liquidación.
         * @param chequeList , el List con los cheques del listado
         * @param dataModel, el DataModel del JTable donde se encuentran los estados seleccionados .
         * @return chequeList, retorna el listado de cheques actualizado con los nuevos estados del cheque.
         */
        public List<Cheque> cambiarEstadosDeChequesSegunLiquidacion(List<Cheque> chequeList,Vector<Vector> dataModel);
        
    
}
